package br.uniriotec.pssgbd.trab.model.bo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

import br.uniriotec.pssgbd.trab.model.entidade.Tipo;

public class TipoBO {
	
	protected PadraoBO dao = new PadraoBO();
	Connection connection;
	
	public TipoBO(){
		try{
			
			connection = dao.criaConexao(false);
			
		}
		catch (Exception e){
			JOptionPane.showMessageDialog(null, ""+e.getMessage());
		}
	}
	
	public List<Tipo> listar(){
		String sql = "select * from tipo";
		List<Tipo> tipos= new ArrayList<Tipo>();
		
		try {
			Statement stmt = connection.createStatement();
			ResultSet rs = stmt.executeQuery(sql);

			
			while (rs.next()) {
				Tipo tipo = new Tipo();
				tipo.setTipo(rs.getString("nome"));
				int id = rs.getInt("tipoid");
				tipo.setCodTipo(id);
				tipos.add(tipo);
			}
		} catch (SQLException e) {
			Exception erro = new Exception(e.getMessage());
		}
		
		return tipos;
	}
	
	public Tipo recuperaTipo(Integer codTipo) {
		String sql = "select * from tipo where tipoid=?";
		PreparedStatement stmt = null;
		ResultSet rs = null;
		Tipo tipo= null;
		
		try {
			stmt = connection.prepareStatement(sql);
			stmt.setInt(1, codTipo);
			rs = stmt.executeQuery();
			
			if (rs.next()) {
				tipo = new Tipo();
				tipo.setTipo(rs.getString("nome"));
				tipo.setCodTipo(Integer.parseInt(rs.getString("tipoid")));
			}
		} catch (SQLException e) {
			Exception erro = new Exception("Erro ao recuperar o tipo!");
		}
		
		return tipo;
		
	}
	
//	public static void main (String [] args){
//		TipoBO u = new TipoBO();
//		Tipo rec = u.recuperaTipo(1);
//		System.out.println("TIPO RECUP:"+rec.getTipo());
//	}

		
}
